#!/bin/bash

# 检查是否提供了目录参数
if [ $# -ne 1 ]; then
    echo "Usage: $0 <directory>"
    exit 1
fi

# 获取目标目录
TARGET_DIR=$1

# 检查目录是否存在
if [ ! -d "$TARGET_DIR" ]; then
    echo "Error: Directory '$TARGET_DIR' does not exist."
    exit 1
fi

# 遍历指定文件夹及其子文件夹中的指定文件类型
find "$TARGET_DIR" -type f \( -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" -o -name "*.hh" \) | while read -r FILE; do
    echo "Converting: $FILE"

    # 使用 iconv 进行编码转换
    TEMP_FILE="${FILE}.tmp"
    iconv -f GB2312 -t UTF-8 "$FILE" -o "$TEMP_FILE"

    # 检查转换是否成功
    if [ $? -eq 0 ]; then
        mv "$TEMP_FILE" "$FILE"
        echo "Converted: $FILE"
    else
        echo "Failed to convert: $FILE"
        rm -f "$TEMP_FILE"
    fi
done

echo "Conversion completed."
